package com.vdong.trade.order.repository;

import com.vdong.trade.order.entity.mo.OrderDisbSnapshotMO;
import com.vdong.trade.order.entity.mo.PusherOrderListMO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.lamb.framework.core.supper.LambRepository;

import java.math.BigDecimal;
import java.util.List;

/**
 * @description: 订单持久层
 * @author: Mr.WangGang
 * @create: 2018-11-29 下午 12:13
 **/
@Mapper
public interface OrderDisbSnapshotMORepository extends LambRepository<OrderDisbSnapshotMO> {

    /**
     * 将数据插入到数据库
     *
     * @param orderDisbSnapshot
     * @return 返回成功新增的个数
     */
    int insertOrderDisbSnapshot(OrderDisbSnapshotMO orderDisbSnapshot);

    /**
     * 根据ID删除数据
     *
     * @param id
     * @return 返回成功删除记录的个数
     */
    int deleteOrderDisbSnapshotById(Long id);

    /**
     * 根据ID修改数据
     *
     * @param id
     * @return 返回成功修改记录的个数
     */
    int updateOrderDisbSnapshotById(OrderDisbSnapshotMO orderDisbSnapshot);

    /**
     * 根据ID查询数据
     *
     * @param id
     * @return 返回成功查询记录
     */
    OrderDisbSnapshotMO selectOrderDisbSnapshotById(Long id);

    /**
     * 根据条件查询数据
     *
     * @param orderDisbSnapshot
     * @return 返回查询的记录列表
     */
    List<OrderDisbSnapshotMO> selectOrderDisbSnapshotListByCond(OrderDisbSnapshotMO orderDisbSnapshot);

    /**
     * 根据条件查询数据的条数
     *
     * @param orderDisbSnapshot
     * @return 返回查询的记录条数
     */
    Integer selectOrderDisbSnapshotCntByCond(OrderDisbSnapshotMO orderDisbSnapshot);

    List<PusherOrderListMO> pusherOrderListMO(OrderDisbSnapshotMO build);

    BigDecimal selectTotalAmountByOrderIds(@Param("ids") List<Long> ids);
}
